﻿using System.ComponentModel;
using Aeon.Emulator.Dos.VirtualFileSystem;

namespace Aeon.Configuration
{
    /// <summary>
    /// Describes configuration for an emulated drive.
    /// </summary>
    public interface IDriveConfiguration : IAeonConfiguration
    {
        /// <summary>
        /// Gets a value indicating whether the drive is read-only.
        /// </summary>
        bool IsReadOnly { get; }

        /// <summary>
        /// Returns a new instance of the emulated drive.
        /// </summary>
        /// <returns>New instance of the emulated drive.</returns>
        IMappedDrive Create();
        /// <summary>
        /// Returns a deep copy of the drive configuration.
        /// </summary>
        /// <returns>Deep copy of the drive configuration.</returns>
        IDriveConfiguration Clone();
    }
}
